// 封装一下定时器promise
function delay (time) {
  return new Promise((resolve, reject) => {
    // 起定时器
    setTimeout(resolve, time)
  })
}

export default {
  // 5s后修改名字
  /*
  setNameAfter5:(store,param)=>{
      setTimeout({
          this.store.commit('SET_NAME',param)
      },5000)
  }
  */
  // 上面那种普通的办法太过繁琐，使用promise封装
  /*
  setNameAfter5:(store,param)=>{
      delay(5000).then(()=>{
        this.store.commit('SET_TIME',param)
    })
  }
  */
  // 这个还是有点麻烦，使用promise的async和await修饰词
  /*
  setNameAfter5:async (store,param)=>{
      await delay(5000);
      this.store.commit('SET_TIME',param)
  }
  */
  // 上面的改变还是不够精简，利用es6语法(解构赋值、函数简写)
  async setNameAfter5 ({ commit }, param) {
    await delay(5000)
    commit('SET_TIME', param)
  },

  // 菜单是否折叠
  setIsCollapse ({ commit }, param) {
    return new Promise((resolve, reject) => {
      commit('SET_ISCOLLAPSE', param)
    })
  }

}
